package com.echoesnet.echoesshortvideo.views;

import android.content.Context;
import android.util.AttributeSet;
import android.view.MotionEvent;

/**
 * Copyright (C) 2018 科技发展有限公司
 * 完全享有此软件的著作权，违者必究
 *
 * @author ben
 * @version 1.0
 * @modifier
 * @createDate 2018/5/5 19:37
 * @description
 */
public class MyVerticalViewPager extends VerticalViewPager
{
    private float startY;
    private float startX;
    // 记录viewPager是否拖拽的标记
    private boolean mIsBeingDragged;
    private final int mTouchSlop=10;

    public MyVerticalViewPager(Context context)
    {
        super(context);
    }

    public MyVerticalViewPager(Context context, AttributeSet attrs)
    {
        super(context, attrs);
       // mTouchSlop = ViewConfiguration.get(context).getScaledTouchSlop();
    }

    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev)
    {
        float currentX=ev.getX();
        float currentY=ev.getY();
        switch (ev.getAction()){
            case MotionEvent.ACTION_DOWN:
                startY=currentY;
                startX=currentX;
                mIsBeingDragged=false;
                break;
            case MotionEvent.ACTION_MOVE:
                //如果横向viewpager正在拖拽中，那么不拦截它的事件，直接return false；
                if(mIsBeingDragged){
                    return false;
                }
                float dx=Math.abs(currentX-startX);
                float dy=Math.abs(currentY-startY);
                // 如果X轴位移大于Y轴位移，那么将事件交给横向的viewPager处理。
                if(dx>dy && dx>mTouchSlop){
                    mIsBeingDragged=true;
                    return false;
                }
                break;
            case MotionEvent.ACTION_UP:
            case MotionEvent.ACTION_CANCEL:
                mIsBeingDragged=false;
                break;
        }
        // 如果是Y轴位移大于X轴，事件交给 竖向viewpager处理。
        return super.onInterceptTouchEvent(ev);
    }
}
